////////////////////////////////////////////////////////////////////////////////
// This file is part of the Mist compiler.                                    //
//                                                                            //
// Copyright (C) 2008, 2009 The Mist project                                  //
//                                                                            //
// For a list of contributors, see the COMMITTERS file.                       //
//                                                                            //
// The Mist compiler is free software: you can redistribute it and/or modify  //
// it under the terms of the GNU General Public License as published by       //
// the Free Software Foundation, either version 3 of the License, or          //
// (at your option) any later version.                                        //
//                                                                            //
// The Mist compiler is distributed in the hope that it will be useful,       //
// but WITHOUT ANY WARRANTY; without even the implied warranty of             //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              //
// GNU General Public License for more details.                               //
//                                                                            //
// You should have received a copy of the GNU General Public License          //
// in the COPYING file. If not, see <http://www.gnu.org/licenses/>.           //
////////////////////////////////////////////////////////////////////////////////

///
/// \file
/// The common/vector.hpp test-suite.
///

////////////////////////////////////////////////////////////////////////////////
// Includes                                                                   //
////////////////////////////////////////////////////////////////////////////////

#include "common/vector.hpp"
#include "test/common.hpp"

////////////////////////////////////////////////////////////////////////////////
// Test Cases                                                                 //
////////////////////////////////////////////////////////////////////////////////

BOOST_AUTO_TEST_SUITE( suite_common_vector )
	
	BOOST_AUTO_TEST_CASE( test_is_prefix ) {
		vector<int> needle, haystack, eldeen;
		
		needle   += 1,2,3,4,5;
		haystack += 1,2,3,4,5,6,7,8,9;
		eldeen   += 5,4,3,2,1;
		
		BOOST_CHECK_PREDICATE( is_prefix<int>     , (needle)(haystack) );
		BOOST_CHECK_PREDICATE( is_prefix<int>     , (needle)(needle)   );
		BOOST_CHECK_PREDICATE( neg(is_prefix<int>), (haystack)(needle) );
		BOOST_CHECK_PREDICATE( neg(is_prefix<int>), (eldeen)(needle)   );
		BOOST_CHECK_PREDICATE( neg(is_prefix<int>), (needle)(eldeen)   );
	}
	
BOOST_AUTO_TEST_SUITE_END()
